package domean;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.JComponent;

public class Spieler extends JComponent{
	
	private String name;
	private Color farbe;
	private int startfeld;
	private int[] startPos;
	private int[][] wissensstandsanzeiger;
	private Spielfigur[] figuren;
	
	public Spieler(int[] positionen){
		
		this.setPreferredSize(new Dimension(800,600));
		this.setSize(new Dimension(800,600));
		
		this.startPos = positionen;
		
		figuren = new Spielfigur[3];
		figuren[0] = new Spielfigur(positionen[0],positionen[1], Color.GRAY, 1);
		figuren[1] = new Spielfigur(positionen[2],positionen[3], Color.GRAY, 2);
		figuren[2] = new Spielfigur(positionen[4],positionen[5], Color.GRAY, 3);
		add(figuren[0]);
		add(figuren[1]);
		add(figuren[2]);
	}
	
	
	public void paintComponent(Graphics gr) {
		for(int i = 0; i < figuren.length; i++){
			figuren[i].repaint();
		}
	}
	
	public String getName () {
		return this.name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public Color getFarbe() {
		return farbe;
	}
	
	public void setFarbe(Color farbe) {
		this.farbe = farbe;
		for(int i = 0; i < figuren.length;i++){
			figuren[i].setFarbe(farbe);
		}
	}
	
	public int[][] getWissensstandsanzeiger() {
		return wissensstandsanzeiger;
	}
	
	public void setWissensstandsanzeiger(int[][] wissensstandsanzeiger) {
		wissensstandsanzeiger = wissensstandsanzeiger;
	}
	
	public Spielfigur[] getSpielfiguren(){
		return this.figuren;
	}
	
	public Spielfigur getSpielFigur(int figur){
		if(figur <= this.figuren.length){
			return figuren[figur];
		}
		return null;
	}
	
	public Spieler getSpieler(){
		return this;
	}
	
	public int getStartfeld() {
		return startfeld;
	}

	public void setStartfeld(int startfeld) {
		this.startfeld = startfeld;
	}

	public boolean isFigurAufFeld(int figur) {
		if(figuren[figur].isFigurAufFeld()){
			return true;
		}else{
		return false;
		}
	}
	
	public void setIstFigurAufFeld(int figur, boolean value){
		figuren[figur].setFigurAufFeld(value);
	}
	
	/**
	 * getter fuer <code>{@link #startPos}</code>
	 */
	public int[] getStartPos() {
		return startPos;
	}


	/**
	 *  setter fuer <code>{@link #startPos}</code>
	 */
	public void setStartPos(int[] startPos) {
		this.startPos = startPos;
	}
}
